Identity and Access Management (IAM)
Documentación IAM
Para aplicar permisos a los usuarios en Google cloud es recomendable hacerlo a traves de grupos a los cuales se les asigna un rol que tiene ciertos permisos, de modo que los permisos no se aplican directamente a los usarios... para darle permisos a un usuario lo metemos en un grupo.
Los componentes de una IAM policy son:
- Principal: usuario al que se le aplicarán roles, puede ser: Una cuenta de google, un grupo de Google, una cuenta de servicio o un dominio de cloud identity.
- Rol: grupo de permisos que se aplicarán a un principal
- Politica: Permite definir que roles y que principales pueden acceder a un recurso, las politicas se asignan directamente a un recurso.
Resource Hierarchy
Documentación jerarquia
La jerarquía de recursos en google cloud es la siguiente:
- Organización
- Folder (opcional)
- Project
- Resource
Cuando le damos a un usuario un rol sobre un recurso, la política resultante es heradada hacia abajo en la jerarquía, de modo que si le damos un rol a un usuario sobre un folder los proyectos y recursos que cuelguen de ese folder heredarán dicha politica.
Roles tipos
Documentación roles
Existen 3 tipos de roles
- Basic roles: Solo existen 3 roles básicos: Owner, Editor y Viewer
- Predefined roles: Son roles adicionales a los básicos para tener un control mas preciso, ya que los roles básicos son muy amplios, estos roles tienen reglas mas especificas para redes, almacenamiento, maquinas virtuales... etc
- Custon roles: Son conjuntos de roles personalizados por el usuario.
Billing configuration
Para utilizar los recursos de Google cloud necesitamos tener una cuenta de facturación, las caracteristicas de la facturación son:
- Aunque usemos servicios gratuitos de Google cloud tenemos que tener una cuenta de facturación
- Una cuenta puede estar asociada a varios proyectos
- Cada proyecto solo puede estar asociado a una cuenta.
- Podemos utilizar Cloud Monitoring channels para enviar alertas por email en relación a un budget
Google cloud GUI y CLI
Hay 4 maneras de interactuar con google cloud:
- Google Cloud console (interfaz WEB)
- Google Cloud SDK (CLI) y Google Cloud Shell (CLI desde web)
- Google Cloud Mobile App
- Mediante APIs
Podemos usar dos comandos principalmente para gestionar Google Cloud:
- gcloud: para gestionar recursos
- gsutil: para gestionar almacenamientos
Google Cloud Pricing Calculator
Google pricing calculator
Podemos usar esta herramienta para obtener un calculo aproximado de cuanto nos costará un servicio de Google Cloud.
Computing Solutions
Los servicios de computación que tenemos en Google Cloud son:
- Compute Engine (GCE): es una maquina virtual que nos permite el control total del sistema operativo.
- Kubernetes Engine (GKE): es un gestor de contenedores que no nos permite controlar directamente el sistema operativo
- App Engine (GAE): es un PaS que nos permite desplegar aplicaciones en Google Cloud.
- Cloud Run: Nos permite desplegar contenedores o código a la escucha de ciertas peticiones.
Serverless compute
Tenemos 3 productos para computación serverless:
Cloud Storage
Data Storage y DataBase en Google Cloud:
Documentación Storage
- BigQuery: es una implementación de warehouse data, permite analizar datos historicos y usa un motor SQL para las consultas.
- Firestore y Cloud Bigtable: son soluciones NO-SQL
- Cloud Storage: es la solución de Google Cloud para almacenar objetos, ya sean videos, imagenes, logs...etc
Documentacion Cloud Storage
- Cloud SQl y Cloud Spanner: son soluciones SQL
Documentacion Cloud Spanner
- Cloud Spanner: Spanner is a distributed, globally scalable SQL database
Los tipos de almacenamiento pueden ser:
Documentación tipos de Almacenamiento
- Archive: Información que se accede menos de una vez al año.
- Coldline: Información que se accede cada 90 días.
- Nearline: Información que se accede cada 30 días.
- Standar: Información que se accede frecuentemente.
NOTA: si se accede a la información antes del tiempo minimo se realizará un cargo por el acceso.
Comparaciones de las opciones de almacenamiento:
Load balance
Resumen de balanceadores de carga en google cloud:
Managed instance groups (MIGs)
Documentacion MIG
Es un grupo de maquinas virtuales que se manejan como una sola entidad.
Si queremos configurar las actualizaciones de las maquinas virtuales, tenemos dos opciones:
- proactive, las actualizaciones se realizan de manera automatica.
- opportunistic, las actualizaciones se aplican de manera selectiva.
Google Kubernetes Engine (GKE)
Documentacion GKE
Podemos crear clusters de kubernetes usando dos modos:
- Autopilot: las configuraciónes se crean de manera automatica.
- Standard: Nosotros realizamos las configuraciones de los clusters.
Cargar datos en BigQuery
Exiten varias maneras con las que podemos cargar información en BigQuery:
- Batch Ingestion
- Streaming Ingestion
- Data Transfer Service (DTS)
- Query Materialization
- Partner Integrations
Virtual Private Cloud(VPC) networks
Las VPC nos permiten crear redes virtuales para conectar nuestros recursos de google cloud.
Subnet creation mode
Hay dos modos para crear subredes:
- Auto mode: se crear subredes de manera automática
- Custom mode: nosotros creamos las subredes manualmente, pudiendo decidir el tamaño y el rango de IPs
Terraform
Documentacion Terraform
Es un IaaS (Infraestructure as a Service), que nos permite desplegar recursos en base a un archivo de configuracion.
CLI CheatSheet
Google Cloud CLI
Snapshots
Documentacion Snapshots.
Los snapshots son copias de seguridad de nuestros discos en google cloud.
Instance Groups
Tenemos dos tipos:
- Managed instance groups
- Unmanaged instance groups
GKE Load Balancer
Para implementar un baleanzador interno tenemos que configurar un ingres con un NEG (Network Endpoint groups)
Documentación ingress
Kubernetes Objetos
Cloud Run Autoscaling
Documentación AutoScaling Cloud Run
Lifecycle management
Nos permite que acciones tomar sobre un almacenamiento en base a unos cirterios
Documentación Lifecycle
Cloud Monitoring
Esta herramienta nos permite monitorizar los recursos de Google Cloud y enviar alertas en base a ciertas métricas que definamos.
Documentación alerting
Tipos de cuentas IAM
Existen varios tipos de cuentas que podemos usar para autenticarnos en IAM.
- Google Account
- Service Account
- Google Groups
- Google Workspace y Google indentity domains
Creacion de custom roles
Documentacion Custom roles
Los custom roles se pueden aplicar sobre organizaciones o proyectos.
Para crear custom roles necesitas tener el permiso Iam.roles.create permission y ser el propietario del grupo o proyecto o tener el role de administrador de la organización
Service Accounts
Documentación Service Accounts
Son cuentas que se usan para hacer una autenticación de servicio a servicio, no es una cuenta que use un usuario, es una cuenta que usa una aplicación para conectarse a un servicio de google cloud.
Cloud Audit Log
Existen 4 tipos de logs:
- Admin Activity
- Data Access
- System Event
- Policy Denied